Cactus Environment Machine Shared Environment Call-by-Need
نویسندگان
چکیده
Existing machines for lazy evaluation use a flat representation of environments, storing the terms associated with free variables in an array. Combined with a heap, this structure supports the shared intermediate results required by lazy evaluation. We propose and describe an alternative approach that uses a shared environment to minimize the overhead of delayed computations. We show how a shared environment can act as both an environment and a mechanism for sharing results. To formalize this approach, we introduce a calculus that makes the shared environment explicit, as well as a machine to implement the calculus, the Cactus Environment Machine. A simple compiler implements the machine and is used to run experiments for assessing performance. The results show reasonable performance and suggest that incorporating this approach into real-world compilers could yield performance benefits in some scenarios.
منابع مشابه
An Environment for Analyzing Space Optimizations in Call-by-Need Functional Languages
We present an implementation of an interpreter LRPi for the call-by-need calculus LRP, based on a variant of Sestoft's abstract machine Mark 1, extended with an eager garbage collector. It is used as a tool for exact space usage analyses as a support for our investigations into space improvements of call-by-need calculi.
متن کاملSexual selection is influenced by both developmental and adult environments.
Sexual selection is often assumed to be strong and consistent, yet increasing research shows it can fluctuate over space and time. Few experimental studies have examined changes in sexual selection in response to natural environmental variation. Here, we use a difference in resource quality to test for the influence of past environmental conditions and current environmental conditions on male a...
متن کاملClassical Call-by-Need Sequent Calculi: The Unity of Semantic Artifacts
We systematically derive a classical call-by-need sequent calculus, which does not require an unbounded search for the standard redex, by using the unity of semantic artifacts proposed by Danvy et al. The calculus serves as an intermediate step toward the generation of an environment-based abstract machine. The resulting abstract machine is context-free, so that each step is parametric in all b...
متن کاملMetadata Management in Scientific Computing
Complex scientific codes and the datasets they generate are in need of a sophisticated categorization environment that allows the community to store, search, and enhance metadata in an open, dynamic system. Currently, data is often presented in a read-only format, distilled and curated by a select group of researchers. We envision a more open and dynamic system, where authors can publish their ...
متن کاملCactus: Issues for Sustainable Simulation Software
The Cactus Framework is an open-source, modular, portable programming environment for the collaborative development and deployment of scientific applications using high-performance computing. Its roots reach back to 1996 at the National Center for Supercomputer Applications and the Albert Einstein Institute in Germany, where its development jumpstarted. Since then, the Cactus framework has witn...
متن کامل